

using System;
using System.Collections.Generic;
using System.Linq;
using Payroll.BusinessLogic.Caching;
using Payroll.BusinessLogic.Configuration.Settings;
using Payroll.BusinessLogic.Data;
using Payroll.BusinessLogic.Infrastructure;

namespace Payroll.BusinessLogic.Security
{
    /// <summary>
    /// ACL service
    /// </summary>
    public partial class ACLService : IACLService
    {
        #region Constants
        private const string CUSTOMERACTIONS_ALL_KEY = "Nop.customeraction.all";
        private const string CUSTOMERACTIONS_BY_ID_KEY = "Nop.customeraction.id-{0}";
        private const string CUSTOMERACTIONS_PATTERN_KEY = "Nop.customeraction.";
        #endregion

        #region Fields

        /// <summary>
        /// Object context
        /// </summary>
        private readonly PayrollHRDataContext m_context;

        /// <summary>
        /// Cache service
        /// </summary>
        private readonly ICacheManager _cacheManager;

        #endregion

        #region Ctor

        /// <summary>
        /// Ctor
        /// </summary>
        /// <param name="context">Object context</param>
        public ACLService(PayrollHRDataContext context)
        {
            this.m_context = context;
            this._cacheManager = new PayrollRequestCache();
        }

        #endregion

        public void DeleteCustomerAction(int customerActionId)
        {
            throw new NotImplementedException();
        }

        public EmployeeAction GetCustomerActionById(int customerActionId)
        {
            throw new NotImplementedException();
        }

        public List<EmployeeAction> GetAllCustomerActions()
        {
            throw new NotImplementedException();
        }

        public void DeleteAcl(int aclId)
        {
            throw new NotImplementedException();
        }

        public ACL GetAclById(int aclId)
        {
            throw new NotImplementedException();
        }

        public List<ACL> GetAllAcl(int customerActionId, int customerRoleId, bool? allow)
        {
            throw new NotImplementedException();
        }

        public void InsertAcl(ACL acl)
        {
            throw new NotImplementedException();
        }

        public void UpdateAcl(ACL acl)
        {
            throw new NotImplementedException();
        }

        public bool IsActionAllowed(string actionSystemKeyword)
        {
            throw new NotImplementedException();
        }

        public bool IsActionAllowed(int customerId, string actionSystemKeyword)
        {
            throw new NotImplementedException();
        }

        public void DeleteAclPerObject(int aclPerObjectId)
        {
            throw new NotImplementedException();
        }

        public ACLPerObject GetAclPerObjectById(int aclPerObjectId)
        {
            throw new NotImplementedException();
        }

        public List<ACLPerObject> GetAllAclPerObject(int objectId, int objectTypeId, int customerRoleId, bool? deny)
        {
            throw new NotImplementedException();
        }

        public void InsertAclPerObject(ACLPerObject aclPerObject)
        {
            throw new NotImplementedException();
        }

        public void UpdateAclPerObject(ACLPerObject aclPerObject)
        {
            throw new NotImplementedException();
        }

        public bool Enabled
        {
            get
            {
                throw new NotImplementedException();
            }
            set
            {
                throw new NotImplementedException();
            }
        }
    }
}